Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use raw map key when it cannot be keywordized #18

Closed
wants to merge 1 commit into from

Conversation

elliot42
Copy link

YAML allows the keys in a map to be arbitrary nodes: scalar, sequence
or mapping. [1] Prior to this commit, the keywordize option was
incorrectly setting map keys to nil for any keys that could not be
keywordized via (keyword k). For example, a valid integer key
"123: 456" would be parsed as {nil 456}, because (keyword 123)
evals to nil.

This commit fixes the issue by keywordizing any map key that can be
keyworded, and otherwise using the raw key if (keyword k) is nil.

This fixes Github lancepantz/clj-yaml issue #15. [2]

[1] http://www.yaml.org/spec/1.2/spec.html#id2764044
[2] #15

YAML allows the keys in a map to be arbitrary nodes: scalar, sequence
or mapping. [1]  Prior to this commit, the *keywordize* option was
incorrectly setting map keys to `nil` for any keys that could not be
keywordized via `(keyword k)`.  For example, a valid integer key
"123: 456" would be parsed as {nil 456}, because `(keyword 123)`
evals to nil.

This commit fixes the issue by keywordizing any map key that can be
keyworded, and otherwise using the raw key if `(keyword k)` is nil.

[1] http://www.yaml.org/spec/1.2/spec.html#id2764044
@startling
Copy link

Hi, thanks for the fix! This repository appears unmaintained so I merged these into our fork, CircleCI-Archived/clj-yaml@cbaab59; I hope that's alright? Feel free to use our fork if you'd like.

@elliot42
Copy link
Author

elliot42 commented Apr 2, 2014

@startling Thanks for incorporating! Will switch over to using your fork.

@elliot42 elliot42 closed this Apr 2, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants